1. Field of the Invention
The present invention relates to a method for storing data in a memory. More particularly, it relates to a method for storing data in a memory, which can efficiently store a learning value, calculated based on each variable condition by a control unit of a vehicle, in a memory area.
2. Description of Related Art
In general, a control hydraulic pressure, a major parameter for controlling an automatic transmission, is determined as a function such as a vehicle speed, oil temperature, input torque, etc. and is controlled to an appropriate hydraulic pressure by controlling a solenoid valve based on the determined value during speed change.
However, this data is determined to obtain the best result in a normal transmission having a central hydraulic deviation, and the distribution of hydraulic pressures in a large number of mass-produced transmissions cannot be covered only by the normally determined value.
To overcome this problem, a transmission control unit (TCU) of the vehicle typically performs a learning control to calculate an offset value with respect to a hydraulic pressure value under each condition, thus achieving a predetermined target shift feeling under each operating condition.
The learning control in the vehicle is performed by the control unit under certain rules to optimally control the transmission, engine, etc., based on a driver's driving habit or tendency. During operation of the vehicle, when a predetermined learning condition is satisfied, a series of processes of calculating, storing and controlling a learning value are performed.
Also, in the control of the engine using a plurality of sensors, an engine control unit (ECU) controls the injection time (i.e., fuel amount) of an injector using self-learning data, thus optimally controlling the injector. Here, the control values according to sensor values are appropriately compensated by the learning.
For example, the learning control is used in air-fuel ratio correction, knocking correction, idle RPM correction, Throttle Position Sensor (“TPS”) deterioration correction, etc., and the learning control is performed by slightly adjusting the information in a lookup table of the ECU.
Meanwhile, in order to perform the above-described learning control in the vehicle, a process in which a microprocessor of the control unit stores the learning value, calculated under each condition, in a specific area of a memory in real time, is required. Here, the memory area in which the learning value is to be stored is determined based on the conditions (such as various sensor values as parameters or other operating conditions) and then stored in the corresponding memory area.
However, conventionally, the storing of the learning values has the following drawbacks.
For example, in the case of the transmission control unit, it is very difficult to differentiate the conditions such as the vehicle speed, oil temperature, input torque, etc., under which the learning values are stored, due to limitations in the capacity of the internal memory for storing the learning values. Accordingly, a learning memory of 4×4 or 6×6 in size is typically used with respect to a single shift class.
Here, the same learning cell in the memory is shared under slightly different conditions, and thus different learning values calculated under different conditions may be stored in the same learning cell. As a result, the accuracy is significantly reduced when the stored learning values are applied to the corresponding control.
Therefore, when a memory having a very large capacity is used, it is possible to determine a learning value storing area with an increased size (e.g., 1000×1000 cells) for storing the learning values, but the number of learning times increases geometrically, which significantly reduces the speed of storing the learning values, thereby reducing the convergence efficiency of the learning values.
FIG. 1 is a diagram showing a conventional method for storing learning values, in which a learning value storing area of a memory is divided into a plurality of virtual cells, and the problems associated with the conventional method will be described in more detail with reference to FIG. 1 below.
Typically, in the control unit of the vehicle such as the Engine Control Unit (“ECU”), Transmission Control Unit (“TCU”), etc., the learning values are stored in a memory having a predetermined cell capacity (m×m). When a learning value data under each condition is obtained while a virtual memory space, in which the learning value data is to be stored, is divided into a plurality of predetermined cells, the learning value data is stored in a cell at a position corresponding to the condition.
Referring to FIG. 1, it can be seen that the memory area is pre-divided into a plurality of cells according to X and Y conditions. When a learning value according to the X and Y conditions is obtained, a cell at a position corresponding to the X and Y conditions is determined (i.e., a learning value storing area is determined), and the learning value is stored in the corresponding cell.
Here, in a state where the learning value is pre-stored in a specific cell under the same condition, if another learning value under a slightly different condition is obtained, the obtained learning value is overwritten in the same cell.
That is, even when different learning values A, B and C under different X and Y conditions are obtained, if the X and Y conditions, under which learning values A, B and C are obtained, are designated to the same unit cell area, the last learning value (e.g., learning value C) is overwritten in the previous learning value (e.g., learning value B) stored in the same cell without distinguishing the conditions.
To solve this problem, it is necessary to subdivide the learning cell into a plurality of smaller cells such that the learning values obtained under different X and Y conditions can be stored in the respective areas. However, if the number of cells increases, a significant number of learning times is required to store the learning values in the respective cells.
For example, if the memory area is divided into 1,000,000 virtual cells, at least 1,000,000 learning times are required.
As such, in order to store most of the learning values obtained under various conditions in the respective areas of the learning memory corresponding to the respective conditions, it is necessary to further subdivide the storing areas of the learning memory divided for the respective conditions (i.e., an increase in m). If so, a significant number of learning times is required to store all of the learning values in the subdivided memory areas, and thus significantly reducing the convergence efficiency of the learning values.
To improve the efficiency of storing the learning values, it is necessary to reduce the number of cells divided in the learning memory. However, if so, the learning values obtained under slightly different conditions are stored in the same learning memory area (i.e., the same learning cell) by overwriting as mentioned above, and thus the difference between the conditions is not distinguishable from the stored learning values.
The information disclosed in this Background of the Invention section is only for enhancement of understanding of the general background of the invention and should not be taken as an acknowledgement or any form of suggestion that this information forms the prior art already known to a person skilled in the art.